Document Stream Operating System

ABSTRACT

A document stream operating system and method is disclosed in which: (1) documents are stored in one or more chronologically ordered streams; (2) the location and nature of file storage is transparent to the user; (3) information is organized as needed instead of at the time the document is created; (4) sophisticated logic is provided for summarizing a large group of related documents at the time a user wants a concise overview; and (5) archiving is automatic. The documents can include text, pictures, animations, software programs or any other type of data.

FIELD OF THE INVENTION

The present invention relates to an operating system in which documentsare stored in a chronologically ordered “stream”. In other words, thatis, as each document is presented to the operating system, the documentis placed according to a time indicator in the sequence of documentsalready stored relative to the time-indicators of the stored documents.

Within this application several publications are referenced by arabicnumerals within parentheses. Full citations for these and otherreferences may be found at the end of the specification immediatelypreceding the claims. The disclosures of all of these publications intheir entireties are hereby incorporated by reference into thisapplication in order to more fully describe the state of the art towhich this invention pertains.

BACKGROUND OF THE INVENTION

Conventional operating systems frequently confuse inexperienced usersbecause conventional operating systems are not well suited to the needsof most users. For example, conventional operating systems utilizeseparate applications which require file and format translations. Inaddition, conventional operating systems require the user to inventpointless names for files and to construct organizational hierarchiesthat quickly become obsolete. Named files are an invention of the 1950'sand the hierarchical directories are an invention of 1960's.

Some conventional operating systems employ a “desktop metaphor” whichattempts to simplify common file operations by presenting the operationsin the familiar language of the paper-based world, that is, paperdocuments as files, folders as directories, a trashcan for deletion,etc. Also, the paper-based model is a rather poor basis for organizinginformation where the state of the art is still a messy desktop andwhere one's choices in creating new information paradigms is constrained[1].

Thus, conventional operating systems suffer from at least the followingdisadvantages: (1) a file must be “named” when created and often alocation in which to store the file must be indicated resulting inunneeded overhead; (2) users are required to store new information infixed categories, that is directories or subdirectories, which are oftenan inadequate organizing device; (3) archiving is not automatic; (4)little support for “reminding” functions are provided; (5) accessibilityand compatibility across data platforms is not provided and (6) thehistorical context of a document is lost because no tracking of where,why and how a document evolves is performed.

“Naming” a file when created and choosing a location in which to placethe file is unneeded overhead: when a person grabs a piece of paper andstarts writing, no one demands that a name be bestowed on the sheet orthat a storage location be found. Online, many filenames are not onlypointless but useless for retrieval purposes. Storage locations areeffective only as long as the user remembers them.

Data archiving is an area where conventional electronic systems performpoorly compared to paper-based systems. Paper-based systems are firstand foremost archiving systems, yet data archiving is difficult inconventional desktop systems. Often, users throw out old data ratherthan undertaking the task of archiving and remembering how to get thedata back. If archiving and retrieval of documents is convenient, oldinformation could be reused more often.

Reminding is a critical function of computer-based systems [2] [3], yetcurrent systems supply little or no support for this function. Users areforced either to use location on their graphical desktops as remindingcues or to use add-on applications such as calendar managers.

A solution to these disadvantages is to use a document stream operatingsystem. One such system is outlined in a 1994 article [4]. However, thisarticle fails to address many of the disadvantages of conventionaloperating systems.

SUMMARY OF THE INVENTION

One object of the present invention is to provide a document streamoperating system and method which solves many, if not all, of thedisadvantages of conventional operating systems.

Another object of the present invention is to provide a document streamoperating system in which documents are stored in one or morechronologically ordered streams.

An additional object of the present invention is to provide an operatingsystem in which the location and nature of file storage is transparentto the user, for example, the storage of the files is handledautomatically and file names are only used if a user chooses to inventsuch names.

A further object of the present invention is to provide an operatingsystem which takes advantage of the nature of electronic documents. Forexample, a conventional paper document can only be accessed in oneplace, but electronic documents can be accessed from multiple locations.

Another object of the present invention is to organize information asneeded instead of at the time the document is created. For example,streams may be created on demand and documents may belong to as manystreams as seems reasonable or to none.

An additional object of the present invention is to provide an operatingsystem in which archiving is automatic.

A further object of the present invention is to provide an operatingsystem with sophisticated logic for summarizing or compressing a largegroup of related documents when the user wants a concise overview. Inaddition, this summarizing can include pictures, sounds and/oranimations. Also, no matter how many documents fall into a givencategory, the operating system is capable of presenting an overview in aform so that all the documents are accessible from a single screen.

Also, an object of the present operating system is to make “reminding”convenient.

Another object of the present invention is to provide an operatingsystem in which personal data is widely accessible anywhere andcompatibility across platforms is automatic. Accordingly, this inventionprovides that computers using the operating system of the presentinvention need not be independent data storage devices, but also act as“viewpoints” to data store and maintained on external systems such asthe INTERNET. Thus, in accordance with the present invention users canaccess their personal document streams from any available platform suchas a UNIX machine, a Macintosh or IBM-compatible personal computer, apersonal digital assistant (PDA), or a set-top box via cable.

According to one embodiment of the invention a computer program fororganizing one or more data units is provided. The computer programincludes: (1) means for receiving one or more of the data units, each ofwhich is associated with one or more chronological indicators; and (2)means for linking each of the data units according to the chronologicalindicators to generate one or more streams of data units. Otherembodiments of the invention also provide: (1) chronological indicatorsincluding past, present, and future times and (2) means for displayingthe streams, wherein respective indicia representing the data units aredisplayed and each data unit includes textual data, video data, audiodata and/or multimedia data. The means for displaying the streams mayfurther include displaying selected segments of the streamscorresponding to selected intervals of time. The means for receiving mayfurther include means for receiving data units from the Word Wide Web orfrom a client computer.

According to another embodiment of the invention, a method of organizingone or more data units is provided including the steps of: (1) receivingone or more data units, each of which is associated with one or morechronological indicators; and (2) linking each of the data unitsaccording to the chronological indicators to generate one or morestreams of data units. In other embodiments, the chronologicalindicators may include past, present, and future times. The method mayfurther include the steps of: (1) displaying the streams, whereinrespective indicia represent each data unit and each of the data unitsmay be textual data, video data, audio data and/or multimedia data. Thestep of displaying the streams may further include the steps of: (1)receiving from a user one or more values indicative of one or moreselected segments of the streams corresponding to selected intervals oftime; and (2) displaying the segments of the streams corresponding tothe selected intervals of time.

These and other advantages of the present invention will become apparentfrom the detailed description accompanying the claims and the attachedfigures.

DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a viewport in one embodiment of the present invention;

FIG. 2 shows a substream menu in one embodiment of the presentinvention;

FIG. 3 shows a list of summary types for the substream chosen in FIG. 2of the present invention;

FIG. 4 shows the time display in one embodiment of the presentinvention;

FIG. 5 shows a calendar-based dialog box in one embodiment of thepresent invention;

FIG. 6 a shows a dialog box in connection with a phone call in oneembodiment of the present invention;

FIG. 6 b shows a summary of phone calls in one embodiment of the presentinvention;

FIG. 7 shows a phone call record dialog box in one embodiment of thepresent invention;

FIG. 8 a shows text data used by one embodiment of the presentinvention; and

FIG. 8 b shows the result of a summarize operation in one embodiment ofthe present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

This invention is a new model and system for managing personalelectronic information which uses a time-ordered stream as a storagemodel and stream filters to organize, locate, summarize and monitorincoming information. Together, streams and filters provide a unifiedframework that subsumes many separate desktop applications to accomplishand handle personal communication, scheduling, and search and retrievaltasks. One embodiment of the present invention utilizes amachine-independent, client/server open architecture so that users cancontinue to use the same conventional document types, viewers andeditors.

A “stream” according to the present invention is a time-ordered sequenceof documents that functions as a diary of a person or an entity'selectronic life. Every document created and every document send to aperson or entity is stored in a main stream. The tail of a streamcontains documents from the past, for example starting with anelectronic birth certificate or articles of incorporation. Moving awayfrom the tail and toward the present and future, that is, toward head ofthe stream more recent documents are found including papers in progressor new electronic mail. A document can contain any type of dataincluding but not limited to pictures, correspondence, bills, movies,voice mail and software programs. Moving beyond the present and into thefuture, the stream contains documents allotted to future times andevents, such as, reminders, calendar items and to-do lists.

Time-based ordering is a natural guide to experience. Time is theattribute that comes closest to a universal skeleton-key for storedexperience. Accordingly, streams add historical context to a documentcollection with all documents eventually becoming read-only, analogouslyas history becomes “set in stone”. The stream preserves the order andmethod of document creation. Also, like a diary, a stream recordsevolving work, correspondence and transactions because historicalcontext can be crucial in an organizational setting.

One embodiment of this invention allows for basic operations to beperform on a stream: new, clone, transfer, find and summarize.

Users create documents by means of the new and clone operations. Newcreates a new, empty document and adds the document to the main stream.Clone duplicates an existing document and adds the duplicate to the mainstream at a new time point. Documents can also be created indirectlythrough the transfer operation. The transfer operation copies a documentfrom one stream to another stream. Creation of a document if“transparent” because documents, by default, are added to the at thepresent time point. Internally, the document is identified by a timeindication so no name is required from the user for the document.Nevertheless, a user can optionally name a document is desired.

Some streams can be organized on the fly with the find operation. Findprompts for a search query, such as “all E-mail I haven't responded to,”or “all faxes I've sent to Schwartz” and creates a substream.Substreams, unlike conventional, virtual or fixed directories which onlylist filenames, present the user with a stream “view” of a documentcollection. This view, according to the present invention contains alldocuments that are relevant to the search query. Also, unlike searchesof conventional fixed directories, the substream is generated by defaultfrom all the documents in the main stream. Accordingly, individualsubstreams may overlap, that is, contain some documents that are thesame and can be created and destroyed on the fly without affecting themain stream or other substreams.

The find operation creates a substream of the main stream or of anothersubstream based on, for example, a boolean attribute-and-keywordexpression or a ‘chronological expression’, for example, “my last letterto Schwartz”. Also, substreams may point to the future, for example, “mynext appointment”.

Once created, substreams operate dynamically, that is, if a user allowsa substream to persist, the substream will collect new documents thatmatch the search criteria as documents arrive from outside the operatingsystem or as the user creates the document. This dynamic operationprovides automatic monitoring of information because the substream notonly organizes the documents as received but also filters for incominginformation. For example, a substream created with the query “find alldocuments created by other people” would subsume a user's mailbox andautomatically collect all arriving mail from other users. A substreamremains in existence until destroyed by the user and acts as a filter byexamining each new document that enters the main stream.

Although a document may belong to any number of substreams, the documentalso enters and remains on the main stream. A substream, in other words,is a “subset” of the main stream document collection. In other words, away of looking at the main stream so as to exclude certain documentstemporarily.

The summarize operation “compresses” or “squish” a stream to generateone or more overview documents. The content of an overview documentdepends on the type of documents in the stream. For instance, if thestream contains the daily closing prices of all the stocks and mutualfunds in a user's investment portfolio, the overview documents maycontain a chart displaying the historical performance of particularsecurities and the user's net worth. As another example, if thesubstream contains a list of tasks a user needs to complete, theoverview document might display a prioritized “to-do” list. Thus, thesummarize operation collapses a stream into a summary document. Thissummary document is a “live” document which is updated as additionaldocuments are added to the main stream.

The type of summary depends on the type of documents in the substream.In one embodiment of the present invention at least one general “squish”function is provided no matter which stream is to be squished.Typically, however, the user will have a number of different squishersto choose from, for example, one squisher might produce a summary inwords, while another squisher might produce a graph. Also “customsquishers” may be supplied by third parties or created by the user.

Another aspect of the invention is that applications execute “inside” astream document leaving any output in that document. Thus, running anapplication is a variant of the new operation. For example, to run aspreadsheet application such as Lotus 1-2-3, a user creates a newdocument at the head of the main stream, specifically, a “live”spreadsheet document. The application itself is stored on the mainstream, or located by means of a calling card that points to anotherstream containing the application.

A stream has three main portions: past, present, and future. The“present” portion of the stream holds “working documents”, which alsoincludes the timepoint in the stream where new documents are created andwhere incoming documents are placed. As documents age and newerdocuments are added, older documents pass from the user's view and enterthe “past portion” where the documents are eventually “archived”. Bydisappearing from view old information is automatically cleared away sothe old information will not clutter up the workspace. At some futurepoint if documents in the past portion are needed, such documents can belocated with the find operation even if the past document has alreadybeen archived.

The “future” portion of the stream allows documents to be created in thefuture. Future creation is a natural method of posting reminders, forexample, meeting dates and scheduling information. The system allowsusers to dial to the future by selecting a future timepoint for adocument. The present invention keeps the document until that futuretime occurs. When the time of documents' timepoint arrives the reminderdocument is brought into view and the document enters the presentportion of the stream.

One embodiment of the present invention is implemented in aclient/server architecture running over the Internet. The server is theworkhorse of this embodiment handling one or more streams by storing allmain stream and substream documents. Each view of a stream isimplemented as a client of the server and provides the user with a“viewpoint” interface to document collections, that is, streams. The“look and feel” of the viewport may be different for different computingplatforms but each viewport should support the basic operations.

One embodiment of the present invention implements a client viewportusing graphically based X Windows, another embodiment implement a clientviewport solely with text in standard ASCII (American StandardCharacters for Information Interchange) and yet another embodimentimplements a client viewport for the NEWTON personal digital assistant(PDA). The X Windows viewport provides the full range of functionalitiesincluding picture and movie display. In contrast the text-only viewporthas a mail-like interface although all the basic operations areavailable. Also, because the NEWTON PDA lacks substantial internalmemory and relies on slow external communications, that is lowbandwidth, a minimal stream-access method is provided.

The X Windows viewport embodiment is shown in FIG. 1. The interface isbased on a visual representation of the stream metaphor 5. Users canslide the mouse pointer 10 over the document representations to “glance”at each document, or use the scroll bar 20 in the lower left-hand cornerto move through time, either into the past or into the future portion ofthe stream.

Color and animation indicate important document features. A red borderin one embodiment means “unseen” and a blue border means “writable”.Open documents may be offset to the side to indicate when the documentis being edited. In this embodiment incoming documents slide in from theleft side and newly created documents pop down from the top and push thesteam backwards by one document into the past.

External applications are used to view and edit documents which the usercan select by clicking on the documents graphical representation. Theexternal applications speed the learning process significantly becausenew users can continue to use familiar applications for example,conventional UNIX application such as emacs, xv, and ghostview, tocreate and view documents while using streams to organize andcommunicate the documents.

The X Windows interface prominently displays the basic operations, thatis, New 30, Clone 40, Xfer 50 (that is, transfer), Find 60, andSummarize 70 as buttons and/or menus. As discussed previously the Newbutton creates a new document and adds the document to the stream at the“present” timepoint. The Clone button duplicates an existing documentand places the copy in the stream. The Xfer button first prompts theuser for one or more mail addresses and then forwards the selecteddocument. The find operation is supported through a text entry box 60that allows the user to enter a boolean search query which results in anew substream being created and displayed. The summarize menu 70generates a new document which displays information from documents in astream in a desired format, for example, a graph.

The X Windows interface of this document also provides additionalbuttons. The Print button 80 copies a selected document to a printerwhere documents may be either printed conventionally or moved to aprinter stream. A software agent which can be associated with the streamforwards each new document to an appropriate printer. The Freeze button90 makes a document read-only.

Pulldown menus are used to select documents from streams or existingsubstreams, create summaries, initiate personal agents and change theclock.

The Streams menu 110 allows the user to select from a list of locallyavailable streams.

FIG. 2 shows the Substreams'menu 120 of one embodiment of the presentinvention. This menu is divided into three sections. The first section130 contains a list of operations that can be performed on substreams,for example, remove. The second section 140 contains one menu entrylabeled “Your Lifestream”, and causes the viewport to display a user'smain stream. The third section 150 lists all of the user's substreams.As indicated by this third section, substreams can be created in anincremental fashion, that is, one substream generated from anotherresulting in a nested set of menus. In this example the nested menuswere created by first creating a substream “lifestreams and david” 160from the main stream and then creating two substreams from thissubstream, “scenarios” and “ben” 170. Substream “scott” 180 was createdfrom the “scenarios” substream. Semantically this incrementalsubstreaming amounts to a boolean ‘and’ of each new query with theprevious substream's query.

FIG. 3 shows the summarize menu 190 which lists the possible summarytypes. Choosing any of these menu options creates a substream summaryand a new document containing the summary is placed on the stream.

The Personal Agents menu 200 lists a number of available software agenttypes. Personal software agents can be added to the user interface inorder to automate common tasks.

The embodiment illustrated in FIG. 4 always displays the time in theupper right hand corner of the viewport interface. This time displayalso acts as a “time” pull-down menu 190 that allows the user to set theviewport time to the future or past via a calendar-based dialog box asillustrated in FIG. 5. Setting the viewport time causes the cursor topoint to that timepoint position in the stream such that all documentsforward of that timepoint, that is, towards the head of the stream havea future timestamp and all documents behind that timepoint, that is,towards the tail, have a past timestamp. As time progresses, this cursormoves forward towards the head of the stream. When the cursor slips infront of the present timepoint “future” documents are added to thevisible part of the stream in the viewpoint, just like new mail arrives.

The effect of setting the time to the future or past is to reset thetime-cursor temporarily to a fixed position designated by the user.Normally the user interface displays all documents from the past up tothe time-cursor. Setting the time-cursor to the future allows the userto see documents in the future part of the stream. Creating a documentin the future results in a document with a future timestamp. Once theuser is finished time-tripping, the user can reset to the present timeby selecting the “Set time to present” menu option in the time menu.

In one embodiment of the present invention “browse cards” 100 areemployed so that when the user touches a document in the stream-displaywith the cursor, a browse card appears. The purpose of the browse cardis to help the user identify a document by providing the user some ideaof the document's contents in a small window. The content of browsecards is an abbreviated version of a document which as been compressedinto an micro-document like an index card. In one embodiment, the browsecard creation operation does header stripping so that the browse carddisplays the first non-trivial words in a document. In anotherembodiment, complex analysis is performed on the document contents sothat ‘most important’ words, pictures and/or sounds are presented.

Another embodiment of the present invention provides “calling cards”which represent or point to a stream or substream Every stream has acalling card and the only way to reference a stream is via this callingcard. In this embodiment the find operation performs as follows: (1) theuser provides a search query; (2) an appropriate substream is generated;(3) the substream's calling card is generated; and (4) the new callingcard is deposited as a new document at the head of the main stream.Every duplicated calling card bears on the face text, an icon or both.In the case of the find operation, the new calling card is marked withthe argument supplied by the user for the search query, for example“from: Schwartz and Lifestreams” or “last letter from Piffel”. As adefault in this embodiment, the interface will automatically display thenew substream.

Another embodiment of the present invention allows documents to begrouped explicitly into a substream. With this feature the user marks,that is, selects all documents to be included in the substream andgroups the selected documents into a substream by creating a new callingcard. The new calling card comes equipped with a system-created iconwhich is marked on all documents that are part of the new stream and theuser may add any other notation to the face of the new calling, card,for example, “these should be merged together to produce the Zeppelinreport.”

In the embodiments with calling cards the “transfer” operation takes twoarguments: a document and a calling card so that the document is copiedonto the stream designated by the calling card. The document may itselfbe a calling card and depending on instructions from the user, eitherthe calling card itself or the stream designated by the calling card iscopied onto the new stream.

Each main stream in this embodiment has a calling card which allows‘inter-main stream’ communication. To communicate a user includes on theface of the calling card for the user's main stream whatever informationthe user is willing to make public. Other users wanting to send thatelectronic mail will need a copy of that user's calling card, whichmight be, for example, “Rock Q. Public, Blimp Mechanic, Passaic N.J.”

To give only limited access to user's stream, a user provides a copy ofthe calling card customized to provide the desired access. Minimalaccess gives other users append-only privileges, that is, user B cansend user A mail, but cannot view anything on user A's stream. Accessrestrictions beyond “minimal” are stated in terms of substreams. Inother words, a calling card gives access to all documents contained inthe specified substream unless that document is also contained on one ofspecified excluded substreams.

The present invention allows a stream document to contain anotherstream, that is a ‘stream envelope’. A stream envelope is equivalent toa ‘value’ calling card versus the ‘reference’ calling cards discussedabove. In other words, rather than point to another stream with acalling card, the stream envelope contains a copy all the documents fromthe other stream. For example, user A transfers to user B a substreamconsisting of all Zeppelin-manual correspondence which contains manydocuments. However, a single new document appears on user B's stream: astream envelope. The stream envelope may be opened yielding the manydocuments of the forwarded stream.

According to the present invention, a text-editor designed specificallyfor stream A can treat a document as a stream of bytes so that softwareagents designed to ‘ride’ streams could ride documents as well. Also,the stream find operation can scan the streamed document andsynchronization based on stream properties can be applied to thestreamed document.

Streams can be copied and combined into new streams, that is, streamscan be merged. For example, if a user acquires stream segments from tenelectronic newspapers and magazines all covering the same one-monthperiod, the segments can be merged in a sorted order into a singlecombined stream.

Another feature of the present invention is a card gallery whichconsists of some reasonable number of microdocuments, for exampletwelve, arranged in such a way that each is always fully visible on theviewport for example, in two columns of 6 each at the right of thedisplay. Each micro-document is a calling card or a micro-browse-card(MBC) to a “regular” document on the stream or in a squish. The microbrowse card in the card gallery represent documents a user has beenworking on. Whenever a user opens a document or creates a substream orsquish, the corresponding micro browse card is added to the cardgallery. A user can re-open the document, squish or have the viewportdisplay the substream, by clicking on, or otherwise selecting, thecorresponding micro browse card.

The micro browse card is administered as a least-recently-used cache,that is, new cards are dealt on top of the least-recently-used existingcard, however, users can override this mechanism and place or lock acard in the gallery. For example, a live squish can act asweather-station, appointment calendar, stock ticker or othercurrent-status reporter if the user locks the micro browse card for thesquish in the gallery.

Because a users' card gallery includes by default the calling cards ofstreams the user has recently opened, the card gallery acts, to theextent streams are used as Web sites, as a World Wide Web “hot list.”

In one embodiment of the present invention at least some part of thestream is in the form of a receding stack of upright rectangles, framedin such a way that only the top line of each document is visible. Aforeshortened viewing angle yields a view that is approximately a righttriangle, the bottom edge aligned with the bottom of the display and theleft edge aligned with the display's left border.

In another embodiment of the inventive operating system a ‘slide rule’bar display is provided which is labelled with the endpoints of thestream, that is, the dates of the farthest-past and farthest-futuredocuments. The document density can be illustrated, for example, by theamount of color saturation of the bar at any point. This type of displayaids the user because some days, weeks, months or other time period havemore associated documents, some have fewer. The slide rule has amagnifier that the user can slide via a mouse, for example up and downthe bar. The magnifier obscures the portion of the slide rule that liesbeneath, but the obscured segment is replaced by an enlarged view of thesmall part of the stream starting at the point touched by the upper edgeof the magnifier or, some similar protocol for defining the startingpoint of the magnified segment. By sliding the magnifier, you change thepart of the stream currently displayed in the main perspective view.

In another embodiment of the present invention at least some part of thestream is in the form of a conventional calendar month display. Withthis display, the stream-segment associated with day n appears as a listof document headers in n's calendar box.

To contemplate the future instead of the past, according to oneembodiment of the present invention, a user can reverse the stream sothat the head of the stream now appears in front, with thenearest-future document immediately behind that document, next-nearestbehind that and so forth. The user then looks from the present into thefuture so that furthest-away document in the display equalsfurthest-away in future time.

All documents older than some date d may be moved by the server fromimmediately-accessible storage to cheaper, long-term storage. When adocument is archived in this way, however, the browse card of thatdocument may remain available in immediately-accessible storage, so thatthe archived document appears in the regular way in the viewport. When auser opens an archived document, the user may incur some delay as theserver locates and reloads the body of the document.

Automatic archiving is a feature of the standalone embodiment anduser-managed web site embodiment. In either embodiment, the streamsoperating system monitors remaining disk space and when available spaceis low, the operating system asks the user to pop in some diskettes orother storage media. Similarly when an archived document needs to bereloaded, the operating system tells the user which diskettes or otherstorage media to insert.

In another embodiment of the present invention a chat feature isprovided. If two users want to chat online in UNIX TALK style; the usercreates a new stream and each user focusses the viewport on that newstream. To make a comment, a user pops a new document on the stream headwith the comment contained as text inside the document. The streamsynchronization properties allow many users to manipulate a streamconcurrently, and allow a user to block at the end waiting for thearrival of a new document which would mean in this case awaiting thenext comment.

A chat stream by its nature provides: (1) permanent record and (2)support for multiple parties to a conversation. A chat stream is in thissense is a real-time bulletin board. In this regard a network bulletinboard may be stored in a stream providing: (1) archived comments thatcan be searched and retrieved using the standard streams operations; (2)synchronization characteristics like a chat stream; and (3) a bulletinboard that can be, located via the find operation.

In another embodiment of the present invention any software agent withthe necessary access can ride your stream. Therefore streams can be thebasis of groupware systems implemented for example as a flock of agents.For example, when user A's wants to schedule a meeting, a software agentdeparts from user A's stream to visit the streams of each of the otherintended participants. Each user's stream lists the current appointmentsin the stream's future portion, and each user also includes a documentgiving the user's general availability in pre-arranged terms so that themeeting-maker software agent can understand. When the software agentfinds an appropriate meeting time, the software agent posts a documentto each stream's future and creates a new stream for the meeting itself.The software agent forwards the calling card of the meeting stream toeach participant. This new stream serves as a chat stream on which theparticipants can discuss the meeting beforehand, accumulate any materialdeveloped during the meeting itself and persists when the meeting isover as a record and a vehicle for post-meeting discussions.

In the following embodiments a stream naturally provides a structure forstoring technical an electronic versions of a newspaper or magazine.

In addition, a mail-order firm might store its catalog in a stream witheach document describing one item. A top page can embed calling cards ashyperlinks so that the streams pointed to are updated automatically bythe persistent substream mechanism. Each user can also reformat thecatalog to taste by creating a substream containing descriptions ofwhatever sort of object interests the user.

In another embodiment of the present invention a phone conversation isstored as a time-ordered sequence of spoken sounds or as electronicrepresentations. When two users want to have a phone conversation, theusers can use software such as a software agent, that creates a newstream and hands each user the calling card. Each user's ‘phone agent’tosses digitized representations of speech frames onto the stream andgrabs each new frame that appears, turning each speech frame into sound.In this scheme, phone and voicemail are integrated in the all-purposestream context and can be manipulated using the standard streamoperations.

Additionally, in another embodiment of the present invention atelevision source can be stored as a time-ordered sequence ofsound-and-image frames. Such television information is an archive aswell as a realtime source and can be searched and substreamed. Atelevision set is merely a viewport. Also, scheduling information can bestored in the television stream's future and tuning into a televisionstation only requires double-clicking on the appropriate calling card.Similar embodiments can provide for radio stations, music sources, etc.

A stream according to the present invention can be controlled by avoice-interface as well as a computer and thereby be accessed via aconventional phone. The voice interface would allow: (1) the stream tobe searched and manipulated; (2) new objects to be installed; (3)objects to be transferred; and (4) other capability.

The following embodiment discusses how the present invention is used forelectronic mail. To send a message, the user creates a new document, forexample by clicking on the New button and composes the message using afavorite editor. After composition, the message document is sent with apush of the Xfer button. Similarly, existing documents are easilyforwarded to other users, or can be cloned and replied to. While allmail messages, both incoming and outgoing, are intermixed with otherdocuments in the stream, the user can create a mailbox by substreamingon documents created by other users. A user can also create substreamsthat contain a subset of the mailbox substream, such as “all mail fromBob”, or “all mail I haven't responded to”.

With the present invention, a reminder can be generated as futureelectronic mail, that is a user can send mail that will arrive in thefuture. If the user dials to the future before writing a messagedocument, when the message document is transferred the message documentwill not appear on recipient's stream until either that time arrives orthe recipient happens to dial the recipient's viewport to the setcreation date. In the present, the document will be in the stream datastructure but the viewport will not show the document. By appearingjust-in-time and not requiring the user to switch to yet anotherapplication, these reminders are more effective than those included in aseparate calendar or scheduling utility program.

One embodiment of the present intention supports an electronic businesscards document type as well as a ‘phone call record’ document for notingthe date and time of phone contacts. In addition, the task of creating aphone call record is automated through a personal agent. The personalsoftware agent is automatically attached to the personal agent menu sothat anytime a user wants to make a call the use chooses “MakePhonecall” from the personal agent menu. The agent is spawned and thedialog box in FIG. 6 a appears. The user types in the name of the calleeand the agent searches the current stream for a business card with thatname. If the name is found, the software agent creates and fills in theappropriate entries of the phone call record as seen in FIG. 7. Thisfunctionality is similar to the use of the personal assistant on theNewton personal digital assistant. The user can later use the streamssummarize operation to summarize the phone calls made. This results in areport as shown in FIG. 6 b.

In another embodiment of the present invention this functionality isextended to include the functions of a time manager. Time managersgenerally track the billable hours a professional spends on one or moreprojects. In streams this is easily accomplished by creating a timecardthat marks the starting and ending time of each task. These timecardsare just thrown onto the stream as used. Then, before each billingperiod, the stream is summarized by the timecards, resulting in adetailed billing statement for each contract.

Another embodiment of the present invention organizes a user's personalfinance. Large number of users already track their checking accounts,savings, investments, and budgets with applications such as QUICKEN. Thetypes of records and documents used in these applications such aselectronic checks, deposits, securities transactions, reports areconveniently stored and generated by streams.

For example, a stock quote service may forward the daily closing pricesof a given portfolio to a user's stream at the end of every businessday. These documents are as shown in FIG. 8 a. Such documents can listeach stock and mutual fund along with its closing price, giving the usera method of calculating the value of the user's assets on a specificday. But if the user wants higher-level view of the portfolio over timethe summarize operation can be used. For example, the user first selectsa substream containing the stock quote documents and selects the“summarize by portfolio” menu item. This operation compresses the datainto a single chart of historical data which summarize the portfoliodocuments in the substream. This result is illustrated in FIG. 8 b.

Another embodiment of present invention provides a stream-based checkingaccount. Each check written creates a record on the users stream. Someof these checks are electronic checks sent to companies with an onlinepresence; other checks are transcribed from written checks. The user, inthis embodiment, employs a personal software agent to help balance hischeckbook. At year's end the user runs a tax summary which squishes thefinancial information in the users stream onto income tax forms whichcan be sent electronically to the Internal Revenue Service.

Streams can also be used for budgeting, tracking expenditures, etc.Streams contain everything a user deals with in the user's electroniclife in a convenient and searchable location.

As discussed previously, every user can send out custom calling cardsthat grant access to a user's stream. Thus, the particular user's streamcan function as a personal World Wide Web site such that the web site ismerely a subset of the user's main stream or a substream. For theconvenience of external users, a user can generate a “guide to thisstream” document that functions as a top page. In the context of thepresent invention, a hyperlink, or a bookmark is just a calling card. Bydouble clicking, or some comparable mechanism, on a calling card theviewport displays the specified stream. Embedding a link from onedocument to another document means to embed calling cards.

The present invention's personal web site provides more features than aconventional worldwide user side because: (1) the web site and personalinformation site are unified and maintained simultaneously with the sametoolset; (2) visitors to the site use the same interface as for thevisitor's own stream, that is, the visitor can browse, create substreamsand squish; (3) visitors can be given customized access levels so thatfriendly visitors get to see more; and (4) the personal web site canfilter incoming documents.

Streams of the present invention are designed to work with conventionalWorld Wide Web browsers, thus opening a document of type web bookmarkcauses the appropriate browser to fire-up as an application the way atext editor fires up when the user opens a text document. However,streams also provide an indigenous web-browsing model. Key features suchas calling cards and find provide this functionality so that theviewport itself functions as the browser.

Streams may also be quite useful for managing information outside of thesystem. For example, keeping track of web bookmarks is difficult andbookmarks are inconvenient to pass to other users. Conventional systemsaccomplish those transactions by copying a Web address from a webbrowser to an electronic mail message which the recipient then copiesfrom electronic mail back to recipient's browser and adds this webaddress as a bookmark. Streams solve both of these problems.

In one embodiment, an agent watches each user's bookmark file for eachtime a new bookmark is added and then adds the same bookmark to a streamas a new Web address document. The effect of opening a Web addressdocument in a stream is that the web browser comes to the foreground andattempts to connect to the Web address. In this way streams create abookmark substream while at the same time making the data in thebookmarks readily available to any other search a user may make.

Passing Web addresses around is trivial, the user merely copies the Webaddress document to another user's stream (a one-step process) and theWeb address is automatically included in the recipient bookmarksubstream.

A stream is a data structure that can be examined and to the extentpossible manipulated by many processes simultaneously. Also a processmay block the end of a stream, that is, suspend the stream operation,until awakened when a new document appears on the stream head. Streamsneed to support the block-at-the-end operation so that a software agentor what amounts to the same thing, that is, a substream or a live squishdocument can examine each new document arriving at the stream.

A stream must support simultaneous arcess because: (1) a user createsmany software agents which may: seed to examine the stream concurrently;and (2) a user may have granted other users limited access to the user'sstream, and the user will want access to this stream even while theother users access the stream.

One embodiment of the present invention is configured such that eachserver may support three to four simultaneous users with stream sizes onthe order of 100,000 documents (perhaps a year or two of documents forthe average user). In another embodiment, the operating system isconfigured such that lifestreams may have millions of documents or more.The substreaming aspect of one embodiment of the present invention isefficiently implemented using an inverse index of the documentcollection maintained by the server. No real performance problems withrespect to retrieval have occurred. Given the very large indices thatare being used on the Internet the retrieval scheme is expected to scaleto large document collections.

Since a user is unlikely look at 10,000 documents at once and discernany usable information, the present invention does not provide the userwith an entire document collection at once. Instead “cursors” are usedto allow the user to view segments of the document collection and toload in more segments as needed.

One embodiment of the invention provides a single-threaded server whichallows a single of access. Other embodiments of the present inventionutilize a multi-server and multi-threaded approach which provides a morescalable architecture.

Regarding the term “agent” used in this application, it is noted thatthis term refers one of three kinds of embedded computations: personalagents, document agents, and stream agents. Personal agents aretypically attached to the user interface and can automate tasks or canlearn from the user's interactions with streams. Document agents live ondocuments and are spawned by various events, for example, the first timethat a document is accessed. Stream agents are attached to streams andexecute whenever the stream changes in some way, for example, a newdocument appears on the stream.

Further, regarding the term “document”, it is noted that this termincludes traditional text based files, electronic mail files, binaryfiles, audio data, video data, and multimedia data.

Additionally, this document stream operating system can be implementedas an independent operating system with all required subsystems such as:a storage subsystems in software and/or hardware for writing documentsto disc drive, tape drives and the like; interrupt handling subsystems;and input/output subsystems. However, the present invention alsoencompasses implementations which utilize subsystems from otheroperating Systems such as the Disk Operating System (DOS), WINDOWS, andOPERATING SYSTEM 7. In such implementations, the graphic user interface(GUI) of the other operating system can be replaced by the presentinvention viewports. Alternatively, the present invention can operate asa document stream utility for the other operating system.

It must be noted that although the present invention is described byreference to particular embodiments thereof, many changes andmodifications of the invention may become apparent to those skilled inthe art without departing from the spirit and scope of the invention,which is only limited by the appended claims. For documents may haveassociated attributes used to locate the document during a search, forexample, a special code word selected by the user.

REFERENCES

-   [1] Theodor Nelson. The right way to think about software design. In    The Art of Human-Computer Interface Sesign (Ed.). Brenda Laurel,    1990.-   [2] Thomas W. Malone. How do people organize their desks?    Implications for the design of office information systems. ACM    Transactions on Office Systems, 1(1):99-112, January 1983.-   [3] M. Lansdale. The psychology of personal information management.    Applied Ergonomics, March 1988.-   [4] David Gelernter. The cyber-road not taken. The Washington Post,    April 1994.

1. A computer program for organizing one or more data units, comprising:means for receiving one or more of the data units, each data unitassociated with one or more chronological indicators; and means forlinking each of the data units according to the chronological indicatorsto generate one or more streams of data units.
 2. The computer programof claim 1, wherein the chronological indicators comprise past, present,and future times.
 3. The computer program of claim 1, further comprisingmeans for displaying the streams, wherein respective indiciarepresenting the data units are displayed.
 4. The computer program ofclaim 1, wherein each data unit includes textual data, video data, audiodata and/or multimedia data.
 5. The computer program of claim 1, whereinthe means for displaying the streams further comprises means fordisplaying selected segments of the streams corresponding to selectedintervals of time.
 6. The computer program of claim 1, wherein the meansfor receiving further comprises means for receiving data units from theWord Wide Web.
 7. The computer program of claim 1, wherein said meansfor receiving further comprises means for receiving data units from aclient computer.
 8. A method of organizing one or more data units,comprising the steps of: receiving one or more data units, each dataunit associated with one or more chronological indicators; and linkingeach of the data units according to the chronological indicators togenerate one or more streams of data units.
 9. The method of claim 8,wherein the chronological indicators comprise past, present, and futuretimes.
 10. The method of claim 8, further comprising the step ofdisplaying the streams, wherein respective indicia represent each dataunit.
 11. The method of claim 8, wherein each data units includestextual data, video data, audio data and/or multimedia data.
 12. Themethod of claim 8, wherein step of displaying the streams furthercomprises: a) receiving from a user one or more values indicative of oneor more selected segments of the streams corresponding to one or moreselected intervals of time, and b) displaying the segments of thestreams corresponding to the selected intervals of time.